﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace IRC.IRepairClouds.DataLayer
{
    public interface IMultiKeyDictionary<TKey, TValue>
        :
        //ICollection<MultiKeyValuePair<TKey, TValue>>,
        IEnumerable<MultiKeyValuePair<TKey, TValue>>,
        IEnumerable
    {
        void Add(TValue value, params TKey[] keys);
        void Set(TValue value, params TKey[] keys);

        bool ContainsKey(TKey key);
        bool Remove(TKey key);
        bool TryGetValue(TKey key, out TValue value);

        ICollection<TKey> Keys { get; }
        ICollection<TValue> Values { get; }

        int KeyCount { get; }
        int ValueCount { get; }
        void Clear();
    }
}
